package com.ruoyi.basebill.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.basebill.domain.WfzJtgzflentry;
import com.ruoyi.basebill.mapper.WfzJtgzflMapper;
import com.ruoyi.basebill.domain.WfzJtgzfl;
import com.ruoyi.basebill.service.IWfzJtgzflService;

/**
 * 薪酬总-计提工资福利Service业务层处理
 *
 * @author wyx
 * @date 2022-12-21
 */
@Service
public class WfzJtgzflServiceImpl implements IWfzJtgzflService
{
    @Autowired
    private WfzJtgzflMapper wfzJtgzflMapper;

    /**
     * 查询薪酬总-计提工资福利
     *
     * @param fid 薪酬总-计提工资福利主键
     * @return 薪酬总-计提工资福利
     */
    @Override
    public WfzJtgzfl selectWfzJtgzflByFid(Long fid)
    {
        return wfzJtgzflMapper.selectWfzJtgzflByFid(fid);
    }

    /**
     * 查询薪酬总-计提工资福利列表
     *
     * @param wfzJtgzfl 薪酬总-计提工资福利
     * @return 薪酬总-计提工资福利
     */
    @Override
    public List<WfzJtgzfl> selectWfzJtgzflList(WfzJtgzfl wfzJtgzfl)
    {
        return wfzJtgzflMapper.selectWfzJtgzflList(wfzJtgzfl);
    }

    /**
     * 新增薪酬总-计提工资福利
     *
     * @param wfzJtgzfl 薪酬总-计提工资福利
     * @return 结果
     */
    @Transactional
    @Override
    public int insertWfzJtgzfl(WfzJtgzfl wfzJtgzfl)
    {
        int rows = wfzJtgzflMapper.insertWfzJtgzfl(wfzJtgzfl);
        insertWfzJtgzflentry(wfzJtgzfl);
        return rows;
    }

    /**
     * 修改薪酬总-计提工资福利
     *
     * @param wfzJtgzfl 薪酬总-计提工资福利
     * @return 结果
     */
    @Transactional
    @Override
    public int updateWfzJtgzfl(WfzJtgzfl wfzJtgzfl)
    {
        wfzJtgzflMapper.deleteWfzJtgzflentryByFparentid(wfzJtgzfl.getFid());
        insertWfzJtgzflentry(wfzJtgzfl);
        return wfzJtgzflMapper.updateWfzJtgzfl(wfzJtgzfl);
    }

    /**
     * 批量删除薪酬总-计提工资福利
     *
     * @param fids 需要删除的薪酬总-计提工资福利主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteWfzJtgzflByFids(Long[] fids)
    {
        wfzJtgzflMapper.deleteWfzJtgzflentryByFparentids(fids);
        return wfzJtgzflMapper.deleteWfzJtgzflByFids(fids);
    }

    /**
     * 删除薪酬总-计提工资福利信息
     *
     * @param fid 薪酬总-计提工资福利主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteWfzJtgzflByFid(Long fid)
    {
        wfzJtgzflMapper.deleteWfzJtgzflentryByFparentid(fid);
        return wfzJtgzflMapper.deleteWfzJtgzflByFid(fid);
    }

    @Override
    public int operation(Long[] fids, String fstate) {

        return wfzJtgzflMapper.operation(fids,fstate);
    }

    /**
     * 新增薪酬总-计提工资福利明细信息
     *
     * @param wfzJtgzfl 薪酬总-计提工资福利对象
     */
    public void insertWfzJtgzflentry(WfzJtgzfl wfzJtgzfl)
    {
        List<WfzJtgzflentry> wfzJtgzflentryList = wfzJtgzfl.getWfzJtgzflentryList();
        Long fid = wfzJtgzfl.getFid();
        if (StringUtils.isNotNull(wfzJtgzflentryList))
        {
            List<WfzJtgzflentry> list = new ArrayList<WfzJtgzflentry>();
            for (WfzJtgzflentry wfzJtgzflentry : wfzJtgzflentryList)
            {
                wfzJtgzflentry.setFparentid(fid);
                list.add(wfzJtgzflentry);
            }
            if (list.size() > 0)
            {
                wfzJtgzflMapper.batchWfzJtgzflentry(list);
            }
        }
    }
}
